package com.aishua.fire.service;

import java.util.List;

import com.aishua.fire.entity.activiti.SignTaskListInfo;
import com.aishua.fire.entity.activiti.WorkFlowInfo;
import com.aishua.fire.entity.activiti.YuAnActivitiDetailsRespInfo;
import com.aishua.fire.entity.activiti.YuAnProcessReqInfo;
import com.aishua.fire.entity.activiti.YuAnWorkFlowStartInfo;
import com.aishua.fire.entity.activiti.YuAnWorkFlowStartParm;
import com.aishua.fire.entity.activiti.YuanProcessInfo;
import com.aishua.fire.entity.app.AppDutyContentInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyEvacuationReqInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyPreDetailsRespInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyPreReqInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyPreRespInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyWarnReqInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyWarnStartUpReqInfo;
import com.aishua.fire.entity.emergencyPre.PositionReqInfo;
import com.aishua.fire.entity.emergencyPre.TroubleReqInfo;
import com.aishua.fire.entity.emergencyPre.TroubleRespInfo;

public interface EmergencyPreManagerService {

	void addEmergencyInf(EmergencyPreReqInfo preInfo);

	void updateEmergencyInf(EmergencyPreReqInfo preInfo);

	void delEmergencyInf(String id);

	List<EmergencyPreRespInfo> emergencyPreList(int pageNumber, int pageSize, String pre_name, String pre_type);

	List<EmergencyPreDetailsRespInfo> emergencyPreDetails(String id);

	void addPositionInf(PositionReqInfo preInfo);

	void addTroubleInf(TroubleReqInfo troubleInfo);

	void updateTroubleInf(TroubleReqInfo preInfo);

	void delTroubleInf(String id);

	List<TroubleRespInfo> troubleList(int pageNumber, int pageSize, String department_id, String start_time,
			String end_time,String category);

	List<EmergencyPreDetailsRespInfo> preDetails(String id);

	void delPositionInf(String id);

	void updatePositionInf(PositionReqInfo preInfo);

	List<AppDutyContentInfo> dutyDetailsByApp(String pre_id,String position_id);

	void addEvacuationInf(EmergencyEvacuationReqInfo evaInfo);

	void updateEvacuationInf(EmergencyEvacuationReqInfo evaInfo);

	void delEvacuationInf(String id);

	List<EmergencyEvacuationReqInfo> evacuationList(int pageNumber, int pageSize, String location, String object);

	WorkFlowInfo getWorkFlow();

	void startEmergencyState(String id);

	List<SignTaskListInfo> getPositionWithTask(String pre_id, String position);

	void endEergencyState(String pre_id);

	void updateSignStat(String pre_id, String position_id);

	boolean selectAllSignState(String pre_id);

	YuanProcessInfo getYuanProcessInfo(String pre_id);

	YuAnProcessReqInfo editorYuanProcessInfo(YuAnProcessReqInfo preInfo);

	/**
	 * 应急预案管理-添加预案标准(参数)接口
	 * @param warnInfo
	 */
    void addWarnInfo(EmergencyWarnReqInfo warnInfo);

    /**
     * 应急预案管理-添加预案启动标准(参数)接口
     * @param startInfo
     */
    void addWarnStartUpInfo(EmergencyWarnStartUpReqInfo startInfo);

	List<YuAnActivitiDetailsRespInfo> getWorkFlowDetails(String pre_id);

	YuAnWorkFlowStartInfo getDepartMentId(String id);

	YuAnProcessReqInfo getStepTwoInfo();

	/**
	 * 插入预案启动选择的预案启动参数
	 * @param info
	 */
    void insertStartWorkFlowParm(YuAnWorkFlowStartParm info);

    /**
     * 应急预案管理-删除预案标准(参数)接口
     * @param id
     */
    void delwarnInf(String id);

    /**
     * 应急预案管理-删除预案启动标准(参数)接口
     * @param id
     */
    void delwarnstartupInf(String id);

    /**
     * 应急预案管理-修改预案标准(参数)接口
     * @param info
     */
    void updateWarnInf(EmergencyWarnReqInfo info);

    /**
     * 应急预案管理-修改预案启动标准(参数)接口
     * @param info
     */
    void updateWarnstartupInf(EmergencyWarnStartUpReqInfo info);



}
